// 输入一个矩阵，按照从外向里以顺时针的顺序依次打印出每一个数字，例如，如果输入如下4 X 4矩阵： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
function printMatrix(matrix)
{
    // write code here
      let len = matrix.length;
  if (len == 0) {
    return matrix;
  }
  let size=len*matrix[0].length
  let res = [];
  let lines = matrix.length - 1;
  let columns = matrix[0].length - 1;
  let dfs = function (i, j, lines, columns) {
    if (i > lines || j > columns) return;
    
        res.push(...matrix[i].slice(j,columns+1))
        if(size===res.length)return
    
    for (let line = i + 1; line < lines; line++) {
     res.push(matrix[line][columns]);
    }
    res.push(...matrix[lines].slice(j,columns+1).reverse());
    if(size===res.length)return
    for (let line = lines - 1; line > i; line--) {
      res.push(matrix[line][j]);
    }
    dfs(i + 1, j + 1, lines - 1, columns - 1);
  };
  dfs(0, 0, lines, columns);
  return res
}